/*
 * FileName: StaticSingleton.java
 * Author:   zzw
 * Date:     2018年06月23日
 * Description:
 */
package com.zzw.design.singleton;

/**
 * 〈〉<br>
 * 〈〉
 *
 * @author zzw
 * @see [相关类/方法]（可选）
 * @since [产品/模块版本]（可选）
 */
public class StaticSingleton {

    //兼顾了懒汉模式的内存优化（使用时才初始化）以及饿汉模式的安全性（不会被反射入侵）
    public StaticSingleton getSingleton(){
        return Singleton.instance;
    }

    private static class Singleton{
        static {
            System.out.println("static class");
        }
        private static StaticSingleton instance = new StaticSingleton() ;
    }

    public static void main(String[] args) {
        StaticSingleton staticSingleton = new StaticSingleton();
        StaticSingleton instance = Singleton.instance;
    }
}
